﻿/*-------------------------------------------------------------------------
* 命名空间: WaferSelectV3.ValueConverters/OneWayConverter
* 类       名: OneWayConverter
* 功      能:  TD
* 时      间:  2024-04-27 14:58:42
* 版      本:  V1.0
* 作      者:  Fioman
* 格      言:  Talk is cheap,show me the code ^_^
*-------------------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;

namespace WaferSelectV3.ValueConverters
{
    public abstract class OneWayConverter : IValueConverter
    {
        /// <summary>
        /// 当数据从绑定源(例如一个数据模型)传递给绑定目标(例如一个控件)时,Converter方法会被调用.
        /// 例如,你可能有一个控件的绑定源绑定的是boolean类型,但是显示文本的时候你可能希望显示是或者否,
        /// 这个时候就可以通过Converter进行转换.
        /// </summary>
        /// <param name="value">要转换的值,绑定源的数据源的值</param>
        /// <param name="targetType">绑定目标要显示的类型,比如TextBlock的Text要显示的类型为string,就是UI控件属性承载的类型</param>
        /// <param name="parameter">一个可选参数,可以在XAML中提供,你可以使用这个参数来影响转换的行为</param>
        /// <param name="culture">用于转换的文化信息,用来进行一些区域特性的转换,例如日期和字符串</param>
        /// <returns></returns>
        public abstract object Convert(object value, Type targetType, object parameter, CultureInfo culture);

        /// <summary>
        /// 当数据从绑定目标传递给绑定源的时候,就是从UI控件的值传递到后台的时候.ConverterBack会被调用.
        /// 其实就相当于是控件上的值发生改变的时候,会调用这个方法,而我们使用了Binding.DoNothing表示不作
        /// 转换,什么都不做.
        /// </summary>
        /// <param name="value">从绑定目标(UI)控件传递过来的值</param>
        /// <param name="targetType">绑定源的数据类型</param>
        /// <param name="parameter"></param>
        /// <param name="culture"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return Binding.DoNothing;
        }
    }
}
